package com.seafood.service;

import com.seafood.websocket.WebSocketMessage;
import com.seafood.websocket.WebSocketStatistics;

/**
 * WebSocket服务接口
 */
public interface WebSocketService {
    
    /**
     * 向指定用户发送消息
     */
    void sendMessageToUser(Long userId, String type, String content, Object data);
    
    /**
     * 广播消息到所有订阅指定主题的客户端
     */
    void broadcastToTopic(String topic, String type, String content, Object data);
    
    /**
     * 广播消息到所有连接的客户端
     */
    void broadcastToAll(String type, String content, Object data);
    
    /**
     * 发送订单状态更新通知
     */
    void sendOrderStatusUpdate(Long userId, Long orderId, String status, String message);
    
    /**
     * 发送冷链异常报警通知
     */
    void sendColdChainAlert(Long userId, String alertType, String message, Object alertData);
    
    /**
     * 发送系统通知
     */
    void sendSystemNotification(String type, String message, Object data);
    
    /**
     * 发送产品库存预警
     */
    void sendStockAlert(Long productId, String productName, Integer currentStock, Integer threshold);
    
    /**
     * 获取当前WebSocket连接统计
     */
    WebSocketStatistics getConnectionStatistics();
}